package com.ygxsk.carhome.ui.adapter;

import android.text.TextUtils;
import android.view.View;
import android.widget.CheckBox;
import android.widget.ImageView;
import android.widget.TextView;

import androidx.annotation.NonNull;
import androidx.annotation.Nullable;

import com.chad.library.adapter.base.BaseQuickAdapter;
import com.chad.library.adapter.base.viewholder.BaseViewHolder;
import com.flyco.roundview.RoundTextView;
import com.ygxsk.carhome.R;
import com.ygxsk.carhome.response.CouponCustomerVo;
import com.ygxsk.carhome.utils.CommUtils;
import com.ygxsk.carhome.utils.StringCodeUtils;

import java.util.List;

/*
 * @Author:itchenqi175@163.com
 * @Time:2023-07-17  16:07
 * @Description: 客户关怀的卡券发放的是
 *
 * 智能出门主页列表，智能出门的【更多】历史列表，这个和【核销列表】不是一个适配器；
 *
 * 卡券发放的 历史记录 也是这个 适配器
 *
 */
public class CardSumHistoryAdapter extends BaseQuickAdapter<CouponCustomerVo, BaseViewHolder> {

    //添加携带标志，要控制是否展开 【复选框】+【批量审核】按钮
    private boolean extra_ischecked_more_items_flag;

    public CardSumHistoryAdapter(int layoutResId) {
        super(layoutResId);
    }

    public CardSumHistoryAdapter(int layoutResId, @Nullable List<CouponCustomerVo> data, boolean _ischecked_more_items_flag) {
        super(layoutResId, data);

        extra_ischecked_more_items_flag = _ischecked_more_items_flag;

        addChildClickViewIds( //R.id.textvieweditviewphonehis,
                R.id.roundtextViewDoVerifyTwo,//
                R.id.imagerightinfoclickhis,//
                R.id.textviewcarsendreasonhis);
    }

    @Override
    protected void convert(@NonNull BaseViewHolder baseViewHolder, CouponCustomerVo couponCustomerVo) {

        if (couponCustomerVo != null) {

            //姓名
            String name = couponCustomerVo.getUserName();
            //手机号
            String phone = couponCustomerVo.getPhone();

            //卡券的名称：
            String couponName = couponCustomerVo.getCouponName();

            //发放时间
            String time = couponCustomerVo.getCreateTime();
            //核销状态 :是汉字形式的;
            String stateItem = couponCustomerVo.getCouponStatusInfo();

            //findviews
            //手机号
            TextView textViewEditViewPhone = (TextView) baseViewHolder.getView(R.id.textvieweditviewphonehis);
            //客户的姓名
            TextView textViewPerosonName = (TextView) baseViewHolder.getView(R.id.textviewperosonnamehis);

            //卡券的名称
            TextView textViewCouponNameSum = (TextView) baseViewHolder.getView(R.id.textviewcarnamesum);

            //该车辆 使用卡券的状态:其实主要的是核销状态
            TextView textViewCarSmartState = (TextView) baseViewHolder.getView(R.id.textviewcarsmartstatesum);
            //卡券发放的时间
            TextView textViewSmartTime = (TextView) baseViewHolder.getView(R.id.textviewcarsmarttimesum);

            //勾选按钮
            CheckBox checkBoxInLiveAdapterCardSum = (CheckBox) baseViewHolder.getView(R.id.checkBoxInLiveAdapterCardSum);

            //审核按钮：单审核
            RoundTextView roundtextViewDoVerifyTwo = (RoundTextView) baseViewHolder.getView(R.id.roundtextViewDoVerifyTwo);

            //帮助线条，如果是最后一个线条，布局隐藏
//            TextView textViewHelpInSmartList = (TextView) baseViewHolder.getView(R.id.textviewhelpinsmartlistsum);

            //发送优惠券的原因:如果原因不是空，2024年1月22日08:31:10 需求是整体都展开，但是没有发放原因，末尾的详情按钮隐藏
//            RelativeLayout relativeLayoutReasonInfo = (RelativeLayout) baseViewHolder.getView(R.id.relativelayoutreasoninfohis);
            //填充真实的发送优惠券的原因
            TextView textViewCarSendReason = (TextView) baseViewHolder.getView(R.id.textviewcarsendreasonhis);

            ImageView imageRightInfoClick = (ImageView) baseViewHolder.getView(R.id.imagerightinfoclickhis);


            //如果需要审核，那么审核按钮显示：
            //是否可以审核（权限）1是0否
            //private Integer isExamine;
            int isExamine = couponCustomerVo.getIsExamine();


            //默认是展示的
            int currentPosition = getItemPosition(couponCustomerVo);

//            if (currentPosition == getData().size() - 1) {
//                textViewHelpInSmartList.setVisibility(View.GONE);
//            } else {
//                textViewHelpInSmartList.setVisibility(View.VISIBLE);
//            }

            if (isExamine == 0) {

                roundtextViewDoVerifyTwo.setVisibility(View.INVISIBLE);

            } else if (isExamine == 1) {

                //在拥有审核权限的条件下
                //如果是从批量审核过来的，那么【隐藏】复选框。只能【批量审核】
                if (extra_ischecked_more_items_flag) {
//                roundtextViewDoVerifyTwo.setVisibility(View.VISIBLE);
                    roundtextViewDoVerifyTwo.setVisibility(View.INVISIBLE);
                } else {
                    //如果是【主页-发放历史记录-更多】过来的，那么复选框展示，是只能单个审核的。
                    roundtextViewDoVerifyTwo.setVisibility(View.VISIBLE);
                }

            } else {

                roundtextViewDoVerifyTwo.setVisibility(View.INVISIBLE);

            }


            //2024-1-2：森哥给逻辑：是这样的逻辑， couponPackId >0 的优惠券记录 显示《批量审批》 按钮， 点击批量审批按钮， 带 couponPackId 过去打开一个新列表页   。这里是该礼包下的优惠券 ，批量审批
            //2024-1-2 14:16:56 设置勾选的逻辑，仅仅在【是批量审核的逻辑，执行才有意义】
            if (extra_ischecked_more_items_flag) {

                CommUtils.setViewVisible(checkBoxInLiveAdapterCardSum);

                //设置复选框是【显示】的；
                int isChecked = couponCustomerVo.getIsSelect();

//                CheckBox checkBoxSeletcItem = (CheckBox) baseViewHolder.getView(R.id.imagepaymentselect);
//                CommUtils.setButtonDrawable(checkBoxSeletcItem);

                if (isChecked == 0) {
                    checkBoxInLiveAdapterCardSum.setChecked(false);
                } else if (isChecked == 1) {
                    checkBoxInLiveAdapterCardSum.setChecked(true);
                }

            } else {

                //如果不是从批量审核过来的，而是从【优惠券主页的-发放记录-更多】过来的，那么，没有复选框。
                //设置复选框是【隐藏】的；
                CommUtils.setViewGone(checkBoxInLiveAdapterCardSum);

            }

            //-------------------------------------------------------------------
            //是否有发送原因,餐券发送过来的，那一定是【没有发送原因】的，也不必要去展示。
            String explain = couponCustomerVo.getExplain();
            if (!TextUtils.isEmpty(explain)) {
                CommUtils.setText(textViewCarSendReason, explain);
                CommUtils.setViewVisible(imageRightInfoClick);
            } else {
                CommUtils.setViewGone(imageRightInfoClick);
            }
            //-------------------------------------------------------------------

            CommUtils.setText(textViewEditViewPhone, StringCodeUtils.mobileEncrypt(phone));
            CommUtils.setText(textViewPerosonName, name);

            CommUtils.setText(textViewCouponNameSum, couponName);
            CommUtils.setText(textViewCarSmartState, stateItem);
            CommUtils.setText(textViewSmartTime, time);

        }
    }

    //事件内容

    /**
     * 全部选中的状态
     */
    public void selectedAll() {

        if (!this.getData().isEmpty()) {//如果列表不是空的

            for (int index = 0; index < getData().size(); index++) {

                //PropertyPaymentBean propertyPaymentBean = getData().get(index);
                //propertyPaymentBean.setChecked(1);//全部标志选中状态
                getData().get(index).setIsSelect(1);

            }

        }

        notifyDataSetChanged();

    }

    /**
     * 标志全部未选中
     */
    public void unSelectedAll() {

        if (!this.getData().isEmpty()) {
            for (int index = 0; index < getData().size(); index++) {
                getData().get(index).setIsSelect(0);
            }
        }

        notifyDataSetChanged();

    }
}
